100 REM*** KEY BUFFER IS C64 ONLY!! 110 : 120 PRINT"[147][158] FORM MAKER - LOUIS F. SANDER [146] " 130 POKE53280,6:POKE53281,6 140 PRINT"[153] THIS MAKES A FORM ON YOUR PRINTER." 150 INPUT" YOUR PRINTER WIDTH IN SPACES 80[157][157][157][157]";PW:PW=PW-1 160 INPUT" YOUR PAPER LENGTH IN INCHES 11[157][157][157][157]";PL:PL=INT(9*PL) 170 PRINT" COLUMN 1 COLUMN 2" 180 PRINT"[153] [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]" 190 PRINT" ROW 1 [153][165] [165] [165]" 200 PRINT" [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]" 210 PRINT" ROW 2 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]" 220 PRINT" [165] [165] [165]" 230 PRINT" ROW 3 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]" 240 PRINT"[158]THE FORM CAN HAVE ANY NUMBER OF COLUMNS" 250 PRINT"AND ROWS. IT CAN BE UP TO";PW;"[158]PRINTER" 260 PRINT"SPACES WIDE AND";PL;"[158]PRINTER LINES LONG," 270 PRINT"INCLUDING LABELS FOR COLUMNS AND ROWS." 280 PRINT"YOU CHOOSE ANINDIVIDUAL WIDTH FOR EACH" 290 PRINT"COLUMN, AND ONE HEIGHT FOR ALL THE ROWS." 295 PRINT" DO YOU WANT TO LOAD A FORM? 296 [161]A$:[139]A$[178]""[167]296 297 [139]A$[178]"Y"[167]1300 300 [133]" HOW MANY COLUMNS ON THE FORM";NC%:[134]CW(NC%):[153]:[139]NC%[179]1[167]1020 310 W[178]0:[129]J[178]1[164]NC% 320 [153]" HOW MANY SPACES IN COLUMN";J;"CMD";:CW(J)[178]0:[133]CW(J) 330 [139]CW(J)[179]1[167][153][163]35)"ONSYS_ ???":[137]320 340 W[178]W[170]CW(J):[130] 350 [153]"SYSTHESE COLUMNS TAKE UP";W;"SYSOF THE";PW 360 [153]"SYSAVAILABLE SPACES ON YOUR PRINTER." 370 [139]W[177]PW[167][153]" ABORTED - MAXIMUM WIDTH IS";PW;"CMD SPACES. ":[137]1020 380 [133]" IS THIS O.K. (Y OR N) YCMDCMDCMD";A$:[139]A$[179][177]"Y"[167][153]:[137]310 390 [133]" LABEL THE COLUMNS (Y OR N) YCMDCMDCMD";A$:[139][200](A$,1)[179][177]"Y"[167]470 400 [141]1090:[129]J[178]1[164]NC% 410 [153]"LABEL FOR COLUMN";J;"-";CW(J);"SPACES" 420 [153]" ";[199](34);[199](20);[199](34); 430 [129]K[178]1[164]CW(J):[153]" ";:[130]:A[178][185](0):[153][199](34):[139]A[177]38[167][153]"ON"; 440 [153]"ON";:[151]631,29:[151]198,1:[133]A$ 450 [139][195](A$)[179][177]CW(J)[167][153]"SYS ERROR!! - TRY AGAIN ":[137]410 460 L$[178]L$[170]A$:[130] 470 [153]"SYSTHAT FINISHES THE VERTICAL COLUMNS." 480 [153]"NOW WE WILL DO THE HORIZONTAL ROWS," 490 [153]"WHICH CAN FILL UP TO";PL[171]1;"SYSPRINTER LINES." 500 [133]" HOW MANY ROWS ON THE FORM";NR%:[139]NR%[179]1[167]500 510 NW[178][195]([196](NR%))[171]1:NW$[178][200](" ",NW) 520 [133]"HOW MANY PRINTER LINES PER ROW";LR%:[139]LR%[179]1[167]520 530 TL[178]NR%[172]LR%[170]1:[134]L$(TL[170]2) 540 [153]"SYSTHESE ROWS TAKE UP";TL;"SYSPRINTER LINES," 550 [153]"INCLUDING A LINE FOR COLUMN LABELS." 560 [153]"YOUR PAPER HAS";PL;"SYSLINES, LEAVING";PL[171]TL 570 [153]"SYSLINES UNPRINTED." 580 [139]TL[177]PL[167][153]" ABORTED - TOO LONG FOR THE PAPER.":[137]1020 590 [153]"SYSTHE FORM IS";W;"SYSSPACES WIDE, LEAVING" 600 [153]"CMD";PW[171]W;"SYSSPACES FOR "; 610 [139]NW[178][179]PW[171]W[167][153]"NUMBERING OR "; 620 [153]"LABELING" 630 [153]"ITS";NR%;"SYSHORIZONTAL ROWS." 640 [139]NW[177]PW[171]W[167][153]"THERE IS NO ROOM TO NUMBER THEM.":[137]690 650 [133]" NUMBER THE ROWS (Y OR N)";A$:[139][200](A$,1)[179][177]"Y"[167]690 660 [129]J[178]0[164]TL:L$(J)[178]NW$:[130]:J[178]1 670 [129]K[178]1[170][181]((LR%[171]1)[173]2)[164]TL[171]1[169]LR%:L$(K)[178][201](" "[170][196](J),NW):J[178]J[170]1 680 [130]:[137]830 690 [133]" LABEL THE ROWS (Y OR N)";A$:[139][200](A$,1)[179][177]"Y"[167]830 700 [141]1090 710 [133]" # SPACES IN LONGEST LABEL";LW 720 [139]LW[177]PW[171]W[167][153]"SYS ERROR!! -";PW[171]W;"CMD MAXIMUM ":[137]710 730 [129]J[178]1[164]LW:LW$[178]LW$[170]" ":[130] 740 [129]J[178]0[164]TL:L$(J)[178]LW$:[130]:J[178]1 750 [129]K[178]1[170][181]((LR%[171]1)[173]2)[164]TL[171]1[169]LR% 760 [153]"LABEL FOR ROW";J;"-";LW;"SPACES" 770 [153]" ";[199](34);LW$;:A[178][185](0):[153][199](34):[139]A[177]38[167][153]"ON"; 780 [153]"ON";:[151]631,29:[151]198,1:[133]A$ 790 [139][195](A$)[179][177]LW[167][153]"SYS ERROR!! - TRY AGAIN ":[137]760 800 L$(K)[178]A$:J[178]J[170]1:[130] 810 : 820 [143] PRINT THE FORM 830 [153]"SYSTHE FORM IS" [200]([196]((LW[170]W)[173]10),5);[199](34);" WIDE BY"; 840 [153][200]([196](TL[173]9),5);[199](34);" LONG," 850 [153]"OR";LW[170]W;"SPACES WIDE BY";TL;"LINES LONG." 855 [153]" PWAITRINT OR SWAITAVE THIS FORM? 856 GETA$:IF A$="S"THENGOTO1200 857 IFA$<>"P"THEN856 860 PRINT"[153][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 870 PRINT" ALIGN THE PAPER IN THE PRINTER, " 880 PRINT" THEN PRESS THE 'P' KEY... " 890 GETA$:IFA$=""THEN890 892 IFA$="P"THEN900 895 IFA$="Q"THEN1000 896 GOTO890 900 T$=CHR$(15) :REM TEXT MODE **TARGET 910 G$=CHR$(8) :REM GRAPHICS MODE (FOR LINE SPACING) 920 OPEN4,4:CMD4:GOSUB1060:PRINTL$ 930 FORH=1TONR%:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(207);:FORK=1TOCW(J)-1 940 IFCW(J)>1THENPRINTCHR$(163); 950 NEXT:NEXT:PRINTCHR$(165);G$:IFLR%<2THEN990 960 FORI=1TOLR%-1:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(165);:FORK=1TOCW(J)-1 970 IFCW(J)>1THENPRINT" "; 980 NEXT:NEXT:PRINTCHR$(165);G$:NEXT 990 NEXT:GOSUB1060;:FORJ=1TONC%:FORK=1TOCW(J):PRINTCHR$(163);:NEXT:NEXT 995 PRINT#4:CLOSE4 1000 PRINT"[147][158] FORM MAKER - LOUIS F. SANDER [146] " 1010 PRINT" YOUR FORM IS FINISHED!" 1020 POKE53280,14:POKE53281,6:PRINT"[154]"; 1030 PRINT" CREATE ANOTHER FORM?" 1031 GOSUB1500 1033 GETA$:IFA$=""THEN1033 1035 IFA$="Y"THENCLR:GOTO120 1036 END 1040 : 1050 REM ROW LABELS SUBROUTINE 1060 PRINTT$;L$(LC);:LC=LC+1:RETURN 1070 : 1080 REM LABEL SUBROUTINE 1090 PRINT"[158]ENTER THE LABELS RIGHT NOW. YOU MUST" 1100 PRINT"KEEP THEM BETWEEN THE QUOTATION MARKS," 1110 PRINT"BUT YOU CAN CENTER THEM OR POSITION" 1120 PRINT"THEM AS YOU LIKE." 1130 RETURN 1190 REM * FILE HANDLING BY BRIAN ROWE * 1200 CLOSE2:INPUT" FORM NAME";A$ 1210 OPEN2,8,1,A$+",S,W" 1212 PRINT#2,TL:PRINT#2,LW:PRINT#2,W:PRINT#2,L$:PRINT#2,NR%:PRINT#2,NC% 1213 PRINT#2,LR% 1215 FORX=0TOTL:PRINT#2,CHR$(34)+L$(X)+CHR$(34):NEXT 1216 FORY=1TONC%:PRINT#2,CW(Y):NEXT:CLOSE2 1240 GOTO 860 1300 CLOSE2:INPUT" FORM NAME";A$ 1310 OPEN2,8,2,A$+",S,R" 1312 INPUT#2,TL:INPUT#2,LW:INPUT#2,W:INPUT#2,L$:INPUT#2,NR%:INPUT#2,NC% 1313 INPUT#2,LR% 1314 DIMCW(NC%):DIML$(TL+2) 1315 FORX=0TOTL:INPUT#2,L$(X):NEXT 1317 FORY=1TONC%:INPUT#2,CW(Y):NEXT:CLOSE2 1330 GOTO860 1500 PRINT" [158] FILE ROUTINES BY BRIAN D. ROWE [145][145][145][145][145]" 1501 RETURN